package com.kingsoft.miot.bridge.service;

import java.util.List;
import java.util.Set;

import com.kingsoft.miot.bridge.controller.resp.HotelInfoDetailResp;
import com.kingsoft.miot.bridge.controller.resp.HotelInfoResp;
import com.kingsoft.miot.bridge.controller.resp.PageResult;
import com.kingsoft.miot.bridge.pojo.hotel.HotelInfo;

/**
 * 酒店信息
 * 
 * @author HUJIANQING
 *
 */
public interface HotelService {

	/**
	 * 通过ID获取酒店信息
	 * 
	 * @param hotelId
	 * @return
	 */
	public HotelInfo getById(int hotelId);

	/**
	 * 添加酒管理者
	 * 
	 * @param hotel_id
	 * @param email
	 * @return
	 */
	public int addHotelManager(int hotel_id, String email);

	/**
	 * 通过hotel id 删除管理员
	 * 
	 * @return
	 */
	public int deleteManager(int hotel_id, List<String> managerList);

	/**
	 * 通过ID更新hotel
	 * 
	 * @param hotelId
	 * @return
	 */
	public int updateHotelInfoById(HotelInfo hotelInfo);

	/**
	 * 新增某个酒店
	 * 
	 * @param hotel
	 */
	public void insertOne(HotelInfo hotel);

	/**
	 * 通过ID暂停hotel_id
	 * 
	 * @param hotel_id
	 * @return
	 */
	public int pauseOrStartHotelById(int hotel_id, short status);

	/**
	 * 通过id list获取所有的酒店
	 * 
	 * @param hotelIdList
	 * @return
	 */
	public List<HotelInfo> getByHotelIdList(Set<Integer> hotelIdList);

	/**
	 * 通过hotel_id 获取hotel info
	 * 
	 * @param id
	 * @return
	 */
	public HotelInfoDetailResp getHotelInfoDetailResp(int id);

	/**
	 * 分页查询所有酒店
	 * 
	 * @param currentPage
	 * @param pageSize
	 * @return
	 */
	public PageResult<HotelInfoResp> findHotelByPage(int currentPage, int pageSize);

	/**
	 * 获取所有的hotel
	 * 
	 * @return
	 */
	public List<HotelInfo> findAll();

	/**
	 * 通过auth unit Id 批量查询酒店
	 * 
	 * @param authUnitIdList
	 * @return
	 */
	public List<HotelInfo> getByAuthUnitIdList(Set<Integer> authUnitIdList);

	/**
	 * 通过auth unit Id 查询酒店
	 * 
	 * @param authUnitId
	 * @return
	 */
	public PageResult<HotelInfoResp> getByAuthUnitId(int authUnitId);

	/**
	 * 通过酒店名称获取 HotelInfo
	 * 
	 * @return
	 */
	public HotelInfo getHotelInfoByName(String name);

}
